home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / MATH / MFLOAT10.ZIP / POLAR.C < prev    next >
C/C++ Source or Header  |  1993-04-28  |  1KB  |  42 lines

  1. /* This program demonstrates the conversion of cartesian coordinates */
  2. /* to polar coordinates with mfloat numbers                          */
  3.  
  4. extern unsigned _stklen = 40000U;
  5.  
  6. #include "mfloat.h"
  7. #include <stdio.h>
  8. #include <string.h>
  9.  
  10. int main (void)
  11. {
  12.   mfloat x, y, r, phi, xr, yr;
  13.   char ch[1000];
  14.  
  15.   setmantissawords(15);
  16.   printf("          Conversion cartesian coordinates - polar coordinates\n");
  17.   printf("          ====================================================\n\n");
  18.   printf("Cartesian coordinates:\n");
  19.   do {
  20.     printf("x = ");
  21.     scanf("%s",&ch);
  22.   } while (strtomf(x,ch));
  23.   do {
  24.     printf("y = ");
  25.     scanf("%s",&ch);
  26.   } while (strtomf(y,ch));
  27.   printf("\n");
  28.   printf("x   = %s\n", mftoa(ch,x,50));
  29.   printf("y   = %s\n\n", mftoa(ch,y,50));
  30.   printf("Conversion to polar coordinates:\n\n");
  31.   hypotm(equm(r,x),y);
  32.   atan2m(equm(phi,y),x);
  33.   printf("r   = %s\n", mftoa(ch,r,50));
  34.   printf("phi = %s\n\n\n", mftoa(ch,phi,50));
  35.   printf("Conversion back to cartesian coordinates:\n\n");
  36.   cossinm(equm(xr,phi),yr);
  37.   multm(xr,r);
  38.   multm(yr,r);
  39.   printf("x   = %s\n", mftoa(ch,xr,50));
  40.   printf("y   = %s\n", mftoa(ch,yr,50));
  41.   return(0);
  42. }